#pragma once
class Vector
{
public:
	Vector(void);
	Vector(float x, float y, float z = 0.0f);
	~Vector(void);

	void	Set(float x, float y);
	float	GetX() const;
	float	GetY() const;
	float	GetZ() const;

	Vector	add(const Vector &vec) const;
	Vector	subtract(const Vector &vec) const;
	Vector	mult(float n) const;
	Vector	divide(float n) const;
	float	dot(const Vector &vec) const;
	Vector	cross(const Vector& vec) const;
	float	length() const;
	float	distance(const Vector &vec) const;
	Vector	normalise();

private:
	float	m_x, m_y, m_z;
};

Vector operator+ (const Vector &lhs, const Vector &rhs);
Vector operator- (const Vector &lhs, const Vector &rhs);
Vector operator* (const Vector &lhs, float n);
Vector operator* (float n, const Vector &lhs);
Vector operator/ (const Vector &lhs, float n);